﻿#define  _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

//数组做函数参数
//写⼀个函数对将⼀个整型数组的内容，全部置为 - 1，再写⼀个函数打印数组的内容。

//void set_arr()
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		arr[i] = -1;
//	}
//}
//
//void print_arr()
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d", arr[i]);
//	}
//}
//
//int main()
//{
//	int arr[10];
//	int sz = sizeof(arr) / sizeof(arr[0]);
//
//	set_arr();
//	print_arr();
//	return 0;
//}

//写函数参数都不传？？？？？？？？

//void set_arr(int arr[],int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		arr[i] = -1;
//	}
//}
//
//void print_arr(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d\n", arr[i]);
//	}
//}
//
//int main()
//{
//	int arr[10];
//	int sz = sizeof(arr) / sizeof(arr[0]);
//
//	set_arr(arr, sz);
//	print_arr(arr, sz);
//
//	return 0;
//}

//改进：自行输入并打印

//void input_arr(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		scanf("%d\n", &arr[i]);//记得加&
//	}
//}
//
//void print_arr(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d\n", arr[i]);
//	}
//}
//
//int main()
//{
//	int arr[10];
//	int sz = sizeof(arr) / sizeof(arr[0]);
//
//	input_arr(arr, sz);
//	print_arr(arr, sz);
//	return 0;
//}


//函数嵌套
//计算某年某⽉有多少天


//int is_leap_year(int year)//判断年份是否为闰年
//{
//	if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))
//	{
//		return 1;
//	}
//	else 
//	{
//		return 0;
//	}
//}
//
//int get_days_of_month(int year, int month)
//{
//	int days[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//	int day = days[month];
//
//	if (is_leap_year(year) && month == 2)//如果是闰年并且要求2月份的天数，则令天数数组中的2月份参数加1
//	{
//		day++;
//	}
//	return day;
//}
//
//int main()
//{
//	int year = 0;
//	int month = 0;
//
//	scanf("%d %d", &year, &month);//又不加&  ******************************
//	int a = get_days_of_month(year, month);
//	printf("%d年的%d月有%d天\n", year, month, a);
//	return 0;
//}

//链式访问
//所谓链式访问就是将⼀个函数的返回值作为另外⼀个函数的参数，像链条⼀样将函数串起来就是函数的链式访问。

//int main()
//{
//	//printf("%d\n", strlen("abcdef"));//把strlen的返回值直接作为printf函数的参数
//	printf("%d", printf("%d", printf("%d", 43)));
//	//printf函数返回的是打印在屏幕上的字符的个数
//	return 0;
//}


//声明函数只要交代清楚：函数名，函数的返回类型和函数的参数。

//int add(int x, int y);//函数声明
//
//int main()
//{
//	int a = 3;
//	int b = 0;
//
//	int c = add(a, b);
//	printf("%d", c);
//
//	return 0;
//}
//
//int add(int x, int y)
//{
//	return x + y;
//}






//⼀般情况下，函数的声明、类型的声明放在头⽂件（.h）中，函数的实现是放在源⽂件（.c）⽂件中。************
//test.c引用add.h文件的函数声明即可运用add.c的函数实现
//但是要引用时要用""(自己定义的子文件引用用”“，官方的子文件引用用<>)

//#include"add.h"
//
//int main()
//{
//	printf("%d", add(6, 6));
//	return 0;
//}

